package com.lovestudying.dao;

import java.util.List;
import java.util.Map;

import com.lovestudying.entity.Teacher;
import com.lovestudying.util.PageInfo;





public interface TeacherDao {



	/**
	 * 按条件查找教师基本信息(SELECT * FROM Teacher)
	 * 
	 * @param Where_Param
	 * 
	 * @param OrdeBy_Param
	 *            Orde By语句的参数map，key对应条件字段，value对应条件的值 (例如：Orde By teacher_id
	 *            key(DESC或者ASC))
	 * @return teacher 的列表
	 */
	// List<Teacher> findTeacher(Map<String, Object> Where_Param, Map<String,
	// Object> OrdeBy_Param);

	/**
	 * 添加Teacher数据
	 * 
	 * @param Value_Param
	 *            插入的值的 key 和 value
	 * @return 影响行数
	 */
	Integer InsertTeacher(Map<String, Object> Value_Param);

	/**
	 * 删除数据
	 * 
	 * @param Where_Param
	 *            删除参数的 key 和 value
	 * @return 影响行数
	 */
	Integer DeleteTeacher(Map<String, Object> Where_Param);

	/**
	 * @param Set_Param
	 *            Set条件Map
	 * @param Where_Param
	 * 
	 * @return 影响行数
	 */
	Integer UpdateTeacher(Map<String, Object> Set_Param, Map<String, Object> Where_Param);

	/**
	 * 按条件查找Teacher(Where，OrderBy，Limit)。返回的是PageInfo实例，可以根据泛型调用data()方法获取泛型的List，可以再根据List的get(index)方法获取单一泛型实例。根据实际service需求做选择
	 * 
	 * @param Where_Param
	 *            Where条件Map
	 * @param OrdeBy_Param
	 *            OrderBy条件Map
	 * @param Lmt_pageSize
	 *            单页行数
	 * @param Lmt_pageNum
	 *            页面号码
	 * @return 返回的是PageInfo实例，可以根据泛型调用data()方法获取泛型的List，可以再根据List的get(index)方法获取单一泛型实例。根据实际service需求做选择
	 */
	PageInfo<Teacher> findTeacherUniCourse(Map<String, Object> Where_Param, Map<String, Object> OrdeBy_Param,
			Integer Lmt_pageSize, Integer Lmt_pageNum);
	
	
	 /**
		 * 根据教师工号删除教师表单行记录
		 * @param teacher_id
		 * @return
		 */
		int deleteById(String teacher_id);
		
		/**
		 * 根据教师工号修改简介和照片
		 * @param teacher
		 * @return
		 */
		int updateById(Teacher teacher);
		/**
		 * 根据不同条件查询文章记录。
		 * @param params 条件参数
		 * 		    根据文章标题articleTitleKey
		 * @return 文章列表
		 */
		List<Teacher> findByCondition(Map<String,String> params);

}
